//package com.inspur.edp.cef.generator.repository.valueObject.methods;
//
//import Inspur.Gsp.Caf.Generator.BaseInfoItem.*;
//import Inspur.Gsp.Caf.Generator.ClassMethodGenerator.*;
//import Inspur.Gsp.Caf.Generator.Utils.*;
//import Inspur.Gsp.Cef.Api.*;
//import Inspur.Gsp.Cef.DesignTime.Api.*;
//import Microsoft.CodeAnalysis.*;
//import Microsoft.CodeAnalysis.CSharp.*;
//import Microsoft.CodeAnalysis.CSharp.Syntax.*;
//import com.inspur.edp.caf.generator.method.ClassMethodGenerator;
//import com.inspur.edp.cef.designtime.api.IGspCommonDataType;
//import com.inspur.edp.cef.generator.repository.valueObject.ValueObjectAssemblerGenCtx;
//import lombok.var;
//import org.eclipse.jdt.core.dom.Block;
//
//public abstract class ValueObjInitReadersGenerator extends ClassMethodGenerator {
//  protected ValueObjInitReadersGenerator(
//          ValueObjectAssemblerGenCtx parentContext, IGspCommonDataType dataType) {}
//
//  protected abstract java.util.HashMap<String, java.lang.Class> GetReaderTypes();
//
//  @Override
//  protected Block buildMethodBody() {
//    java.util.ArrayList<StatementSyntax> statements = new java.util.ArrayList<StatementSyntax>();

//    for (var readerType : GetReaderTypes()) {
//      java.util.ArrayList<SyntaxNodeOrToken> argumentList =
//          new java.util.ArrayList<SyntaxNodeOrToken>();

//      var processerArgument =
//          SyntaxFactory.Argument(
//              SyntaxFactory.ObjectCreationExpression(TypeUtils.getTypeSyntax(readerType.getValue()))
//                  .WithArgumentList(SyntaxFactory.ArgumentList()));
//      argumentList.add(processerArgument);
//      statements.add(
//          SyntaxFactory.ExpressionStatement(
//              SyntaxFactory.InvocationExpression(SyntaxFactory.IdentifierName("AddDataReader"))
//                  .WithArgumentList(
//                      SyntaxFactory.ArgumentList(
//                          SyntaxFactory.<ArgumentSyntax>SeparatedList(
//                              argumentList.toArray(new SyntaxNodeOrToken[] {}))))));
//    }
//
//    return SyntaxFactory.Block(statements.toArray(new StatementSyntax[] {}));
//  }
//
//  @Override
//  protected java.util.ArrayList<ModifierKeyword> getAccessModifiers() {
//    return new java.util.ArrayList<ModifierKeyword>(
//        java.util.Arrays.asList(
//            new MethodAccessModifier[] {
//              MethodAccessModifier.Public, MethodAccessModifier.Override
//            }));
//  }
//
//  @Override
//  protected String getMethodName() {
//    return "initReaders";
//  }
//
//  @Override
//  protected java.util.ArrayList<ParameterInfo> getParameterCollection() {
//    return new java.util.ArrayList<ParameterInfo>();
//  }
//
//  @Override
//  protected java.lang.Class getReturnType() {
//    return void.class;
//  }
//}
